Multiple Build Targets এর ব্যবহার

Java Technologies - অ্যাপাচি অ্যান্ট (Apache ANT) কন্ডিশনাল বিল্ড এবং লজিক কন্ট্রোল |
280
280

Apache ANT-এ Multiple Build Targets ব্যবহার করা খুবই সহজ এবং এটি অত্যন্ত কার্যকরী যখন আপনি একটি প্রজেক্টের বিভিন্ন বিল্ড স্টেপ বা কাজ সম্পাদন করতে চান। ANT এর target ট্যাগ ব্যবহার করে আপনি একাধিক টার্গেট তৈরি করতে পারেন, এবং এগুলোকে নির্দিষ্ট অর্ডারে একে অপরের উপর নির্ভরশীল করে সাজাতে পারেন।


Multiple Build Targets কী?

Build Targets হল বিশেষ কাজ বা ধাপ যা ANT এর মাধ্যমে সম্পাদন করা হয়। প্রতিটি টার্গেটের মধ্যে একটি নির্দিষ্ট কাজ বা কাজের গুচ্ছ থাকতে পারে, যেমন কোড কম্পাইল করা, টেস্ট চালানো, আর্কাইভ তৈরি করা ইত্যাদি।

যখন একাধিক টার্গেট ব্যবহৃত হয়, তখন একটি টার্গেটের কাজ অন্য একটি টার্গেটের উপর নির্ভর করতে পারে, এবং ANT নিজে থেকেই সেই নির্ভরশীলতাগুলি পরিচালনা করবে।


Multiple Build Targets এর উদাহরণ

ধরা যাক, আমাদের একটি প্রজেক্ট আছে যেখানে তিনটি কাজ করতে হবে:

  1. clean: পুরনো বিল্ড ফাইল মুছে ফেলবে।
  2. compile: নতুন কোড কম্পাইল করবে।
  3. package: কম্পাইল করা কোডের জন্য JAR ফাইল তৈরি করবে।

build.xml উদাহরণ

<project name="MyProject" default="package" basedir=".">

    <!-- Properties -->
    <property name="src.dir" value="src"/>
    <property name="build.dir" value="build"/>
    <property name="lib.dir" value="lib"/>
    <property name="jar.name" value="myproject.jar"/>

    <!-- Clean target: Remove old build files -->
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <!-- Compile target: Compile Java source files -->
    <target name="compile" depends="clean">
        <mkdir dir="${build.dir}"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}">
            <classpath>
                <pathelement path="${lib.dir}/some-library.jar"/>
            </classpath>
        </javac>
    </target>

    <!-- Package target: Create JAR file from compiled classes -->
    <target name="package" depends="compile">
        <jar destfile="${build.dir}/${jar.name}" basedir="${build.dir}">
            <manifest>
                <attribute name="Main-Class" value="com.myproject.Main"/>
            </manifest>
        </jar>
    </target>

</project>

ব্যাখ্যা:

  1. <target name="clean">:
    • এই টার্গেটটি build ডিরেক্টরি মুছে ফেলবে, যা আগের বিল্ডের ফাইলগুলো পরিষ্কার করবে।
  2. <target name="compile">:
    • compile টার্গেটটি clean টার্গেটের উপর নির্ভরশীল। অর্থাৎ, compile টার্গেটটি প্রথমে clean টার্গেটটি চালাবে (যতক্ষণ না clean সম্পন্ন হয়), তারপর কোড কম্পাইল করবে।
  3. <target name="package">:
    • package টার্গেটটি compile টার্গেটের উপর নির্ভরশীল। এটি প্রথমে compile টার্গেটটি চালাবে, তারপর কম্পাইল করা ক্লাস ফাইলগুলোকে একটি JAR ফাইলে প্যাকেজ করবে।

Target Dependency (টার্গেটের নির্ভরশীলতা)

একটি টার্গেটের মধ্যে depends অ্যাট্রিবিউট ব্যবহার করে অন্য টার্গেটগুলির উপর নির্ভরশীলতা তৈরি করা হয়। যখন একটি টার্গেটের উপর অন্য একটি টার্গেট নির্ভরশীল থাকে, তখন সেই টার্গেটটি প্রথমে চালানো হবে, এবং শুধুমাত্র নির্ভরশীল টার্গেটটি সফলভাবে সম্পন্ন হলে পরবর্তী টার্গেটটি চালানো হবে।

এখানে depends এর উদাহরণ:

<target name="compile" depends="clean">
    <!-- Compile Java source files -->
</target>

<target name="package" depends="compile">
    <!-- Create JAR file -->
</target>
  • depends="clean": compile টার্গেটটি clean টার্গেটের উপর নির্ভরশীল, তাই প্রথমে clean চলবে।
  • depends="compile": package টার্গেটটি compile টার্গেটের উপর নির্ভরশীল, অর্থাৎ প্রথমে কোড কম্পাইল হবে, তারপর JAR ফাইল তৈরি হবে।

Multiple Targets চালানো

আপনি যখন ANT রান করেন, আপনি একাধিক টার্গেটও নির্দিষ্ট করতে পারেন। ANT টার্গেটগুলি নির্দিষ্ট অর্ডারে চালায়, এবং একটি টার্গেট যদি অন্য একটি টার্গেটের উপর নির্ভরশীল হয়, তবে প্রথমে সেই নির্ভরশীল টার্গেটটি সম্পন্ন হবে।

কমান্ড:

ant clean compile package

এই কমান্ডটি প্রথমে clean টার্গেটটি চালাবে, তারপর compile এবং পরে package টার্গেটটি চালাবে। যদি আপনি শুধুমাত্র একটি টার্গেট চালাতে চান, যেমন শুধুমাত্র compile, তাহলে:

ant compile

Multiple Targets Without Dependency

যদি টার্গেটের মধ্যে নির্ভরশীলতা না থাকে, তবে আপনি একে অপরের সাথে স্বাধীনভাবে টার্গেটগুলো ব্যবহার করতে পারেন। তবে, ANT কাজ করবে নির্দিষ্ট আদেশে টার্গেটগুলো সম্পন্ন করার জন্য।

উদাহরণ:

<target name="clean">
    <delete dir="build"/>
</target>

<target name="compile">
    <javac srcdir="src" destdir="build"/>
</target>

<target name="test">
    <junit>
        <classpath>
            <pathelement path="build"/>
        </classpath>
        <test name="TestClass"/>
    </junit>
</target>

এখানে clean, compile, এবং test টার্গেটগুলি একে অপরের উপর নির্ভরশীল নয়। আপনি যে কোন টার্গেট আলাদাভাবে চালাতে পারবেন:

ant clean
ant compile
ant test

Default Target (ডিফল্ট টার্গেট)

আপনি একটি ডিফল্ট টার্গেট নির্দিষ্ট করতে পারেন, যা কোনও টার্গেট নাম ছাড়া যখন ANT চালানো হয় তখন স্বয়ংক্রিয়ভাবে রান হবে। ডিফল্ট টার্গেটের নাম default অ্যাট্রিবিউটে উল্লেখ করা হয়।

উদাহরণ:

<project name="MyProject" default="compile">
    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <javac srcdir="src" destdir="build"/>
    </target>
</project>

এখানে, যদি আপনি ant কমান্ডটি চালান, তবে compile টার্গেটটি ডিফল্টভাবে রান হবে কারণ সেটি default="compile" হিসেবে নির্দিষ্ট করা হয়েছে।


সারমর্ম

  • Multiple Build Targets: ANT-এ একাধিক টার্গেট ব্যবহার করা হয় এবং প্রতিটি টার্গেট একটি নির্দিষ্ট কাজ বা ধাপ সম্পন্ন করে।
  • depends: একটি টার্গেটের নির্ভরশীলতা সৃষ্টির জন্য depends অ্যাট্রিবিউট ব্যবহার করা হয়। ANT নির্ভরশীল টার্গেটগুলি স্বয়ংক্রিয়ভাবে রান করে।
  • Target Execution: আপনি একাধিক টার্গেটকে একসাথে অথবা আলাদাভাবে চালাতে পারেন।
  • Default Target: default অ্যাট্রিবিউট দিয়ে ডিফল্ট টার্গেট নির্দিষ্ট করা যায়, যা ANT রান করার সময় প্রথমে চালানো হয়।

Multiple build targets ব্যবহারের মাধ্যমে আপনি একটি প্রজেক্টের বিল্ড প্রক্রিয়া ভালোভাবে সংহত করতে পারেন এবং কাজগুলোকে আরও নিয়মিত ও কার্যকরভাবে সাজাতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion